package com.zhiwei.gateway.service;

import com.zhiwei.gateway.dao.entity.AuthorityInfo;
import com.zhiwei.gateway.dao.entity.UserInfo;

import java.util.List;

/**
 * function 用户Token服务
 * author zhiwei.yang
 * time 2020-2-27-16:26
 */
public interface UserTokenService {

    /**
     * 获取用户信息
     * @param token 有效Token
     * @return
     */
    UserInfo getUserInfoByToken(String token);

    /**
     * 查询权限信息
     * @param token
     * @return
     */
    List<AuthorityInfo> queryAuthorityByToken(String token);

    /**
     * 创建Token(缓存)
     * @param username
     * @return
     */
    String createToken(String username);

    /**
     * 清除Token
     * @param token 用户Token
     * @return
     */
    void removeToken(String token);

    /**
     * 保存Token: 用于验证Token真实性
     * @param username 用户名
     * @param token token
     */
    void saveToken(String username, String token);

    /**
     * 校验Token真实性
     * @param token
     */
    boolean checkToken(String token);
}
